Python 3 網絡爬蟲實戰

Python 3 網絡爬蟲實戰

作者: 胡松濤
出版社: 清華大學
出版在: 2020-08-01
ISBN-13: 9787302557340
ISBN-10: 7302557349





內容描述


本書分為8章,內容包括Python的開發環境、爬蟲的基礎原理和概念、數據解析與存貯、簡單爬蟲的使用、PyQuery模塊、Scrapy框架、Beautiful Soup框架開發出不同的網絡爬蟲。用實例顯示出不同框架的優缺點,供讀者學習選擇。


目錄大綱


目  錄
 
 
第1章  Python環境配置 1
1.1  Python簡介 1
1.1.1  Python的歷史由來 1
1.1.2  Python的現狀 2
1.1.3  Python的應用 2
1.2  Python 3.8.0開發環境配置 4
1.2.1  在Windows下安裝Python 4
1.2.2  在Windows下安裝配置pip 8
1.2.3  在Linux下安裝Python 9
1.2.4  在Linux下安裝配置pip 11
1.2.5  永遠的hello world 15
1.3  本章小結 19
第2章  爬蟲基礎快速入門 20
2.1  HTTP基本原理 20
2.1.1  URI和URL 20
2.1.2  超文本 21
2.1.3  HTTP和HTTPS 21
2.1.4  HTTP請求過程 22
2.1.5  請求 24
2.1.6  響應 26
2.2  網頁基礎 27
2.2.1  網頁的組成 27
2.2.2  網頁的結構 28
2.2.3  節點樹及節點間的關系 30
2.2.4  選擇器 36
2.3  爬蟲的基本原理 37
2.3.1  爬蟲概述 37
2.3.2  能抓取什麽樣的數據 37
2.3.3  JavaScript渲染頁面 38
2.4  會話和Cookies 39
2.4.1  靜態網頁和動態網頁 40
2.4.2  無狀態HTTP 41
2.4.3  常見誤區 42
2.5  代理的基本原理 42
2.5.1  基本原理 42
2.5.2  代理的作用 43
2.5.3  代理分類 43
2.5.4  常見代理設置 44
2.6  本章小結 44
第3章  數據存儲與解析 45
3.1  文件存儲 45
3.1.1  TXT文件存儲 45
3.1.2  JSON文件存儲 49
3.1.3  CSV文件存儲 52
3.2  關系型數據庫存儲 57
3.2.1  連接數據庫 59
3.2.2  創建表 59
3.2.3  插入數據 60
3.2.4  瀏覽數據 61
3.2.5  修改數據 62
3.2.6  刪除數據 63
3.3  非關系型數據庫存儲 64
3.3.1  安裝數據庫 64
3.3.2  MongoDB概念解析 68
3.3.3  創建數據庫 68
3.3.4  創建集合 69
3.3.5  插入文檔 69
3.3.6  查詢集合數據 71
3.3.7  修改記錄 73
3.3.8  數據排序 74
3.3.9  刪除文檔 75
3.4  lxml模塊解析數據 76
3.4.1  安裝模塊 76
3.4.2  XPath常用規則 76
3.4.3  讀取文件進行解析 79
3.5  本章小結 81
第4章  Python爬蟲常用模塊 82
4.1  Python網絡爬蟲技術核心 82
4.1.1  Python網絡爬蟲實現原理 82
4.1.2  爬行策略 83
4.1.3  身份識別 83
4.2  Python 3標準庫之urllib.request模塊 84
4.2.1  urllib.request請求返回網頁 84
4.2.2  urllib.request使用代理訪問網頁 86
4.2.3  urllib.request修改header 89
4.3  Python 3標準庫之logging模塊 93
4.3.1  簡述logging模塊 93
4.3.2  自定義模塊myLog 97
4.4  re模塊(正則表達式) 100
4.4.1  re模塊(正則表達式的操作) 100
4.4.2  re模塊實戰 102
4.5  其他有用模塊 103
4.5.1  sys模塊(系統參數獲取) 103
4.5.2  time模塊(獲取時間信息) 105
4.6  本章小結 108
第5章  Scrapy爬蟲框架 109
5.1  安裝Scrapy 109
5.1.1  在Windows下安裝Scrapy環境 109
5.1.2  在Linux下安裝Scrapy 110
5.1.3  vim編輯器 111
5.2  Scrapy選擇器XPath和CSS 112
5.2.1  XPath選擇器 112
5.2.2  CSS選擇器 115
5.2.3  其他選擇器 116
5.3  Scrapy爬蟲實戰一:今日影視 117
5.3.1  創建Scrapy項目 117
5.3.2  Scrapy文件介紹 119
5.3.3  Scrapy爬蟲的編寫 121
5.4  Scrapy爬蟲實戰二:天氣預報 128
5.4.1  項目準備 129
5.4.2  創建並編輯Scrapy爬蟲 130
5.4.3  數據存儲到JSON 137
5.4.4  數據存儲到MySQL 139
5.5  Scrapy爬蟲實戰三:獲取代理 145
5.5.1  項目準備 145
5.5.2  創建編輯Scrapy爬蟲 146
5.5.3  多個Spider 152
5.5.4  處理Spider數據 156
5.6  Scrapy爬蟲實戰四:糗事百科 158
5.6.1  目標分析 158
5.6.2  創建編輯Scrapy爬蟲 159
5.6.3  Scrapy項目中間件——添加headers 160
5.6.4  Scrapy項目中間件——添加Proxy 163
5.7  Scrapy爬蟲實戰五:爬蟲攻防 166
5.7.1  創建一般爬蟲 166
5.7.2  封鎖間隔時間破解 169
5.7.3  封鎖Cookies破解 170
5.7.4  封鎖User-Agent破解 170
5.7.5  封鎖IP破解 176
5.8  本章小結 179
第6章  BeautifulSoup爬蟲 180
6.1  安裝BeautifulSoup環境 180
6.1.1  在Windows下安裝BeautifulSoup 180
6.1.2  在Linux下安裝BeautifulSoup 181
6.1.3  最強大的IDE——Eclipse 181
6.2  BeautifulSoup解析器 190
6.2.1  bs4解析器選擇 190
6.2.2  lxml解析器的安裝 191
6.2.3  使用bs4過濾器 192
6.3  bs4爬蟲實戰一:獲取百度貼吧內容 197
6.3.1  目標分析 197
6.3.2  項目實施 199
6.3.3  代碼分析 206
6.3.4  Eclipse調試 207
6.4  bs4爬蟲實戰二:獲取雙色球中獎信息 208
6.4.1  目標分析 209
6.4.2  項目實施 211
6.4.3  保存結果到Excel 214
6.4.4  代碼分析 219
6.5  bs4爬蟲實戰三:獲取起點小說信息 220
6.5.1  目標分析 220
6.5.2  項目實施 222
6.5.3  保存結果到MySQL 224
6.5.4  代碼分析 228
6.6  bs4爬蟲實戰四:獲取電影信息 229
6.6.1  目標分析 229
6.6.2  項目實施 230
6.6.3  bs4反爬蟲 233
6.6.4  代碼分析 235
6.7  bs4爬蟲實戰五:獲取音悅台榜單 236
6.7.1  目標分析 236
6.7.2  項目實施 237
6.7.3  代碼分析 242
6.8  本章小結 243
第7章  PyQuery模塊 244
7.1  PyQuery模塊 244
7.1.1  什麽是PyQuery模塊 244
7.1.2  PyQuery與其他工具 244
7.1.3  PyQuery模塊的安裝 245
7.2  PyQuery模塊的用法 247
7.2.1  使用字符串初始化 247
7.2.2  使用文件初始化 248
7.2.3  使用URL初始化 249
7.3  CSS篩選器的使用 250
7.3.1  基本CSS選擇器 250
7.3.2  查找節點 251
7.3.3  遍歷結果 255
7.3.4  獲取文本信息 256
7.4  PyQuery爬蟲實戰一:爬取百度風雲榜 258
7.5  PyQuery爬蟲實戰二:爬取微博熱搜 259
7.6  本章小結 260
第8章  Selenium模擬瀏覽器 261
8.1  安裝Selenium模塊 261
8.1.1  在Windows下安裝Selenium模塊 261
8.1.2  在Linux下安裝Selenium模塊 262
8.2  瀏覽器選擇 262
8.2.1  Webdriver支持列表 262
8.2.2  在Windows下安裝PhantomJS 263
8.2.3  在Linux下安裝PhantomJS 265
8.3  Selenium&PhantomJS抓取數據 266
8.3.1  獲取百度搜索結果 267
8.3.2  獲取搜索結果 269
8.3.3  獲取有效數據位置 271
8.3.4  從位置中獲取有效數據 273
8.4  Selenium&PhantomJS實戰一:獲取代理 274
8.4.1  準備環境 274
8.4.2  爬蟲代碼 276
8.4.3  代碼解釋 278
8.5  Selenium&PhantomJS實戰二:漫畫爬蟲 279
8.5.1  準備環境 279
8.5.2  爬蟲代碼 281
8.5.3  代碼解釋 283
8.6  本章小結 284
 
第9章  PySpider框架的使用 285
9.1  安裝PySpider 285
9.1.1  安裝PySpider 285
9.1.2  使用PyQuery測試 291
9.2  PySpider實戰一:優酷影視排行 293
9.2.1  創建項目 293
9.2.2  爬蟲編寫一:使用PySpider+PyQuery實現爬取 295
9.2.3  爬蟲編寫二:使用PySpider+ BeautifulSoup實現爬取 301
9.3  PySpider實戰二:電影下載 304
9.3.1  項目分析 304
9.3.2  爬蟲編寫 306
9.3.3  爬蟲運行、調試 312
9.3.4  刪除項目 317
9.4  PySpider實戰三:音悅台MusicTop 320
9.4.1  項目分析 320
9.4.2  爬蟲編寫 321
9.5  本章小結 325
第10章  圖形驗證識別技術 326
10.1  圖像識別開源庫:Tesseract 326
10.1.1  安裝Tesseract 326
10.1.2  設置環境變量 329
10.1.3  測試一:使用tesseract命令識別圖片中的字符 330
10.1.4  測試二:使用pytesseract模塊識別圖片中的英文字符 331
10.1.5  測試三:使用pytesseract模塊識別圖片中的中文文字 332
10.2  對網絡驗證碼的識別 333
10.2.1  圖形驗證實戰一:讀取網絡驗證碼並識別 333
10.2.2  圖形驗證實戰二:對驗證碼進行轉化 334
10.3  實戰三:破解滑塊驗證碼 335
10.3.1  所需工具 335
10.3.2  解決思路 335
10.3.3  編寫代碼 336
10.4  本章小結 341
第11章  爬取App 342
11.1  Charles的使用 342
11.1.1  下載安裝Charles 342
11.1.2  界面介紹 343
11.1.3  Proxy菜單 345
11.1.4  使用Charles進行PC端抓包 350
11.1.5  使用Charles進行移動端抓包 350
11.2  Mitmproxy的使用 351
11.2.1  安裝Mitmproxy 351
11.2.2  啟動Mitmproxy 352
11.2.3  編寫自定義腳本 354
11.2.4  Mitmproxy事件 355
11.2.5  實戰:演示Mitmproxy 358
11.3  實戰:使用Mitmdump爬取App 362
11.3.1  事先準備 363
11.3.2  帶腳本抓取 364
11.3.3  分析結果並保存 365
11.4  Appium的基本使用 366
11.4.1  安裝Appium—直接下載安裝包AppiumDesktop 366
11.4.2  安裝Appium—通過Node.js 368
11.4.3  Android 開發環境配置 368
11.4.4  iOS 開發環境配置 368
11.4.5  使用Appium 369
11.4.6  操作App 371
11.5  本章小結 374
第12章  爬蟲與反爬蟲 375
12.1  防止爬蟲IP被禁 375
12.1.1  反爬蟲在行動 375
12.1.2  爬蟲的應對 378
12.2  在爬蟲中使用Cookies 382
12.2.1  通過Cookies反爬蟲 382
12.2.2  帶Cookies的爬蟲 383
12.2.3  動態加載反爬蟲 386
12.2.4  使用瀏覽器獲取數據 386
12.3  本章小結 386




相關書籍

Java Data Mining: Strategy, Standard, and Practice: A Practical Guide for architecture, design, and implementation

作者 Mark F. Hornick Erik Marcadé Sunil Venkayala

2020-08-01

大話統計學(溢彩實訓版)——基於R語言+中文統計工具

作者 陳文賢

2020-08-01

Machine Learning, Design of Experiments and Statistical Process Control Using MATLAB

作者 Karter J.

2020-08-01